home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / virus / cm211.zip / MAN211.TXT < prev    next >
Text File  |  1996-05-20  |  39KB  |  1,043 lines

  1.  
  2.  
  3.               ╓───╖ ╖           ╥     ╓──╥──╖        ╖
  4.               ║   ╨ ║           ║  ╓  ║  ║  ║        ╫──
  5.               ║     ╟───╖ ╓───╖ ╟──╨╖ ║  ║  ║ ╓───╥  ║   ╓───╖
  6.               ║   ╖ ║   ║ ╟───╜ ║   ║ ║  ╨  ║ ║   ║  ║   ╟───╜
  7.               ╙───╜ ╙   ╜ ╙───╜ ╨   ╙ ╜     ╨ ╙───╨─ ╙──┘╙───╜
  8.  
  9.  
  10.                             Known\Unknown Virus
  11.                              Detection Utility
  12.  
  13.  
  14.  
  15.                  Copyright (c) 1994,1995,1996 Martin Overton
  16.                                   (ChekWARE)
  17.                              All rights reserved.
  18.  
  19.  
  20.               Written by:                     Internet:
  21.  
  22.               Martin Overton,(ChekWARE)       ChekMate@salig.demon.co.uk
  23.               51 Cook Road,
  24.               Horsham,
  25.               West Sussex,
  26.               RH12 5GJ,
  27.               UNITED KINGDOM
  28.  
  29. _________________________________________________________________________
  30.  
  31.  THE INFORMATION AND CODE PROVIDED IS PROVIDED AS IS WITHOUT WARRANTY OF
  32.  ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  33.  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  34.  
  35.  IN NO EVENT SHALL MARTIN OVERTON OR HIS AGENT(S) BE LIABLE FOR ANY DAMAGES
  36.  WHATSOEVER INCLUDING GENERAL, DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL,
  37.  LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES. EVEN IF THE AUTHOR HAS BEEN
  38.  ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  39. _________________________________________________________________________
  40.  
  41.  The UNREGISTERED version of this program, its executables, bait  files
  42.  and related files may be distributed freely as long as no money is charged
  43.  for the program itself or any of its components.
  44.  
  45.  This program MUST be distributed as a whole with its associated files
  46.  and this document.
  47.  
  48.  This version of ChekMate may not be distributed as a part of any commercial
  49.  package without prior written agreement of the author.
  50.  
  51.  It has been tested on many different PCs and Operating System versions
  52.  with no major problems encountered.
  53.  
  54.  This program was developed entirely using personal time and personal
  55.  resources.  This program has no connection with, or is in any way
  56.  endorsed by my employers.
  57.  
  58.  
  59. License:
  60. _______
  61.  
  62. This version of ChekMate is hereby released under the Shareware concept.
  63.  
  64. ChekMate can be evaluated for up to 30 days without having to register.
  65. After that period of time, please either register ChekMate or remove it
  66. from your system.
  67.  
  68. Registration will entitle you to the registered version which is free of
  69. the 'nag-screen' and has additional features, such as a repair facility.
  70. See REGISTER.TXT for full details.
  71.  
  72. The author retains the copyright of ChekMate and all of its components
  73. (except MD5 which is copyright RSA Data Security, Inc.)
  74.  
  75. ChekMate or any of its components may not be used as part of any other
  76. package unless written agreement is obtained from the author.
  77.  
  78. ChekMate must not be modified in any way.
  79.  
  80. MD5 is the RSA Data Security, Inc. MD5 Message-Digest Algorithm,
  81. Copyright 1991 RSA Data Security, Inc.
  82.  
  83.  
  84. Requirements:
  85. ____________
  86.  
  87. ChekMate requires you to have an IBM PC Compatible running DOS 3.3 or later
  88. or one of the other supported operating systems and at least 384Kb of memory
  89. and a Hard Disk.
  90.  
  91. To use ChekWord, you will need a copy of Microsoft Word 6.0 or later.
  92.  
  93.  
  94. What is ChekMate:
  95. ________________
  96.  
  97. ChekMate was written to detect new and known file, Word macro, boot and
  98. partition sector viruses.
  99.  
  100. It should be used alongside a good quality, up-to-date virus scanner.
  101.  
  102.        !!! ChekMate is NOT a substitute for a virus scanner. !!!
  103.  
  104. ChekMate can be integrated with your current DOS based virus scanner.
  105. It will detect most file infector, boot or partition sector viruses,
  106. the ChekWord module will also detect macros in any Word document.
  107.  
  108. ChekMate makes no wild claims about 'Providing 100% protection against all
  109. current and future viruses!' (I'll leave that to other products.)
  110.  
  111. ChekMate is simply an extra layer for a virus to try to defeat. When
  112. combined with 'frequent' backups and a good up-to-date virus scanner,
  113. ChekMate WILL help to protect your data from many known and unknown viruses.
  114.  
  115. One of ChekMate's users said: "ChekMate has been a real security blanket"
  116. Another ChekMate user wrote:  "I wouldn't boot up without it."
  117.  
  118. ChekMate will NOT bombard you with lots of false alarms (unless your
  119. system is always in a state of flux!). It just monitors the areas/files
  120. that a virus will frequently target.
  121.  
  122.              !!! Think of ChekMate as a viral smoke alarm. !!!
  123.  
  124.  
  125.  
  126. Before Installation:
  127. ___________________
  128.  
  129. Before installation, scan the target PC with a good quality up-to-date
  130. virus scanner.
  131.  
  132.     ***    Only once the PC is found to be free of viruses    ***
  133.     *** should you proceed with the installation of ChekMate. ***
  134.  
  135. Copy all the files to a floppy disk and write protect it.  In the event
  136. of a virus outbreak, this disk can then be used to replace infected
  137. ChekMate files.
  138.  
  139. Also, after ChekMate is run for the first time, copy the .CHK files to
  140. the floppy disk you've just created (above).
  141.  
  142. Below are the MD5 hash values for key ChekMate files.  Please check
  143. these values before you run ChekMate to ensure the files have not been
  144. tampered with by a third party.  If they do not match, then do NOT run
  145. them.  Please contact me if the files have been changed.
  146.  
  147. MD5 Validation Information:
  148. __________________________
  149.  
  150.         MD5 (chekmate.exe) = 2fd92293d39fa6b7ecc727c8e7369846
  151.         MD5 (chekmate.chk) = 1bb8c9e8ee668d111fddace2e0915a9e
  152.         MD5 (setup.exe)    = de9ec68d36c9db9e426e06acb083974b
  153.         MD5 (md5.exe)      = 7881d18adf5f4406984cd863beaecda7
  154.         MD5 (filechk1.chk) = 2f7ef57505f1eaf11bce7a33459c97d1
  155.         MD5 (filechk2.chk) = c3d93fa3a6cf5f137f7217051ed7f6c5
  156.         MD5 (four.com)     = ae199cf3e7cdb865d363ae0565968313
  157.         MD5 (four.exe)     = c48dc146c0013ce9d2dcc5b56e7d1a35
  158.         MD5 (ten.com)      = 82e08f193cefa2fc67b5b23f7e341640
  159.         MD5 (ten.exe)      = d70dd3547b8d8160003e2d05cb1c48ae
  160.         MD5 (thirtytw.com) = f3845983f560a6b20d29ebf622b7c6fd
  161.         MD5 (thirtytw.exe) = 3770b6bc9a2bf8ab59331dc6068a999f
  162.         MD5 (chekword.doc) = 7895f5a2d85c3fe54ca73a430421ae4a
  163.  
  164. To validate the files, run MD5.EXE as below for each file listed above:
  165.  
  166.         MD5 <FileName>
  167.  
  168.         e.g MD5 CHEKMATE.EXE
  169.  
  170.  
  171.  
  172.  
  173. Install (ALL Operating Systems):
  174. _______________________________
  175.  
  176. Create a directory (e.g., C:\CHEKMATE) and copy the files listed below
  177. to that directory:
  178.  
  179.         CHEKMATE.EXE    ->       The Main Program File
  180.         CHEKMATE.ICO    ->       Windows Icon File for ChekMate
  181.         CHEKMATE.PIF    ->       Windows PIF File for ChekMate
  182.         CHEKMATE.CHK    ->       ChekMate Finger-Print file
  183.         CHEKWORD.DOC    ->       Word Macro detection document
  184.         SETUP.EXE       ->       Setup program for modifying CHEKMATE.INI
  185.         CHEKMATE.INI    ->       Program INI File (See Later)
  186.         MD5.EXE         ->       RSA's MD5 hash generator (PUBLIC DOMAIN)
  187.         FILECHK1.CHK    ->       Bait files Finger-Print file (Start of Files)
  188.         FILECHK2.CHK    ->       Bait files Finger-Print file (End of Files)
  189.         FOUR.COM        \
  190.         FOUR.EXE         \
  191.         TEN.COM           \
  192.         TEN.EXE           /  Bait files
  193.         THIRTYTW.COM     /
  194.         THIRTYTW.EXE   /
  195.  
  196. (Bait files are simple files that display a message and return to the OS,
  197. they act as a decoy to tempt a virus into infecting it. They have no other
  198. purpose and DO NOT execute any other code or files.)
  199.  
  200. The BAIT files MUST not be replaced with your own versions of BAIT or any
  201. other executable files as MD5 hash values for the files are stored within
  202. the main CHEKMATE.EXE file.
  203.  
  204. They must also be left in the same order in the CHEKMATE.INI provided,
  205. you can though, rename them if you so wish. Renaming them can help to
  206. stop a targeted virus attack.
  207.  
  208.  
  209.  
  210. Install (DOS):
  211. _____________
  212.  
  213. From the directory where you copied ChekMate.
  214.  
  215. 1) Enter SETUP /AUTO <return>
  216.    This will create your CHEKMATE.INI file.
  217.  
  218. 2) Enter CHEKMATE /CREATE <return>
  219.    This will create the fingerprints of those portions of the system
  220.    that ChekMate monitors.
  221.  
  222. 3) Enter CHEKRESQ /GETINT <return>    (Applies to the Registered
  223.    Version).
  224.  
  225.    This will create a file INT.SET in the ChekMate directory.  The file
  226.    holds information about key interrupts.  It is used by ChekResQ (a
  227.    utility that can remove boot sector and partition table viruses both
  228.    from memory and your hard disk.
  229.  
  230. 4) Enter CHEKMATE /SPARSE /SYSTEM <return>
  231.          Note: the /SPARSE parameter is not required but is worth using
  232.                as it is designed to detect sparse infecting viruses.
  233.          Note: the /SYSTEM parameter is not required but is worth using.
  234.                It checks to see that your AUTOEXEC.BAT and
  235.                CONFIG.SYS files remain unchanged.  Although the /SYSTEM
  236.                parameter applies to the Registered Version, including
  237.                it on the command line will have no effect on the Share-
  238.                ware version.
  239.  
  240. 5) Invoke ChekMate at boot-up and whenever there has been any signifi-
  241.    cant activity.  For boot-up, you might add the following to your
  242.    AUTOEXEC.BAT file:
  243.  
  244.         CD \CHEKMATE (or whatever directory name you're using)
  245.         CHEKMATE /SPARSE /SYSTEM
  246.         CD \
  247.  
  248.    If you modify your AUTOEXEC.BAT file, erase the file SYSTEM.CHK
  249.    (created in Step 2) since that SYSTEM.CHK carries the fingerprint of
  250.    your _original_ AUTOEXEC.BAT.  The next time you run CHEKMATE, it
  251.    will create a _new_ SYSTEM.CHK fingerprint corresponding to your
  252.    _new_ AUTOEXEC.BAT.
  253.  
  254. 6) If you have Microsoft's Word For Windows Version 6.0 (or later),
  255.    a) Run Windows
  256.    b) Under File | Run, enter C:\CHEKMATE\CHEKWORD.DOC
  257.       (Note, if you have installed ChekMate in a directory other than
  258.        C:\CHEKMATE, substitute that directory's name for C:\CHEKMATE.)
  259.  
  260.    c) Follow the instructions in the CHEKWORD.DOC file to install ChekWord.
  261.  
  262.  
  263. Install (Windows 3.x and '95):
  264. ______________________________
  265.  
  266. To run ChekMate from Windows, then:
  267.  
  268.         Use the 'File' 'New' 'Program Item' menu option in Program Manager
  269.         to create an entry for this program. (PIF file supplied.)
  270.  
  271.         Edit the .PIF file to reflect the correct 'working directory'.
  272.  
  273.         The ICON can be set to CHEKMATE.ICO  in the directory where
  274.         ChekMate was installed.
  275.  
  276. If you wish to run ChekMate from NT, you must run it with the /NOBP and
  277. /NOCMOS switches, otherwise ChekMate will return an error.
  278.  
  279.  
  280. Install (OS/2 2.x & Warp):
  281. _________________________
  282.  
  283. To set up ChekMate under OS/2, follow the instructions below:
  284.  
  285.         For both HPFS and FAT file systems:
  286.  
  287.         From  the OS/2 desktop, drag a new 'PROGRAM' icon from the
  288.         'Templates' folder and enter the following details:
  289.  
  290.         Path and file name:
  291.  
  292.         C:\<ChekMate Dir>\CHEKMATE.BAT
  293.  
  294.         The batch file should contain the following commands:
  295.         (.... = any other batch file command)
  296.  
  297.         @ECHO OFF
  298.         CHEKMATE.EXE
  299.         .....
  300.         .....
  301.         PAUSE
  302.  
  303.         This will make sure that ChekMate doesn't just exit back to the
  304.         OS/2 Desktop when it's finished.  (Optionally, just check the
  305.         'do not close on exit' box in the setting folder)
  306.  
  307.         Working directory:
  308.  
  309.         C:\<ChekMate Dir>
  310.  
  311.         where <ChekMate Dir> is the directory that you installed ChekMate.
  312.  
  313.         eg. CHEKMATE
  314.  
  315.         Click on the General tab of the program notebook and change
  316.         the title to:
  317.  
  318.         ChekMate
  319.  
  320.         Now drag this icon to the Startup folder.
  321.  
  322.  
  323.  
  324. Upgrading From Version 2.0:
  325. ____________________________
  326.  
  327. To upgrade ChekMate from version 2.0, proceed as follows:
  328.  
  329. 1.      Read this manual BEFORE proceeding.
  330.  
  331. 2.      Copy CHEKMATE.EXE, CHEKMATE.CHK, CHEKMATE.INI, SETUP.EXE, FOUR.COM,
  332.         FOUR.EXE, TEN.COM, TEN.EXE, THIRTYTW.COM, THIRTYTW.EXE, FILECHK1.CHK
  333.         and FILECHK2.CHK to your ChekMate directory. Now run SETUP /AUTO.
  334.  
  335. 4.      Now run CHEKMATE.EXE, if ChekMate informs you that a FingerPrint
  336.         file is missing, Press any key to continue. You will then be told
  337.         that the missing .CHK file is being created.
  338.  
  339. 5.      ChekMate should now work fine with the updated files.
  340.  
  341. 6.      If the above does not work correctly, then run CHEKMATE.EXE /CREATE
  342.         as this will re-generate all the .CHK files.
  343.  
  344.  
  345.  
  346. How ChekMate Works:
  347. __________________
  348.  
  349. ChekMate, when run for the first time, will create a series of Finger-Print
  350. (.CHK) files of the following:
  351.  
  352.         COMMAND.COM or an alternate command processor,
  353.         THE BOOT SECTOR(s) and THE PARTITION TABLE.
  354.  
  355. Each time ChekMate is run, it will first test key Interrupts and base
  356. memory for modifications (unless you disable this test, see below).
  357.  
  358. Any other time that ChekMate is run it will match the Finger-Print files
  359. with the actual files or image files taken at runtime.
  360.  
  361. These Finger-Print (.CHK) files are not CRC's (Checksums), as these are
  362. easily fooled by some viruses; they are actual code fragments of the
  363. start and, in some cases, the end of the file or area.
  364.  
  365. All the BAIT files, ChekMate.EXE, MD5.EXE and the Command Processor are
  366. also protected with MD5 hash values.
  367.  
  368. MD5 hash values are 128 bit cryptographic signatures of the files, which
  369. are VERY secure; far more secure than other similar techniques.
  370.  
  371. If these Finger-Print files and/or hash values do NOT match the runtime
  372. images, you will be warned that one or more of the files/areas have
  373.  
  374. been changed. The actual area/file name will be displayed.
  375.  
  376. The information will also be written to the error log (ERROR.LOG) in the
  377. ChekMate directory.
  378.  
  379. If a change is detected then ChekMate will return to the OS without checking
  380. any other files/areas for modifications.
  381.  
  382. Most viruses change executable code at the beginning and/or end of a file
  383. or area. ChekMate checks for this sort of modification.
  384.  
  385. MD5 hash values are computed from the contents of the whole file and
  386. therefore will detect ANY change to the file(s).
  387.  
  388.  
  389.  
  390. A Guided Tour of ChekMate:
  391. _________________________
  392.  
  393. Below is an example of the output that ChekMate produces when run.
  394.  
  395. Explanations are given at each stage of the process.
  396.  
  397. ___________________________________________________________________________
  398.   ████████████  ChekMate √ 2.1 UNREGISTERED [20th April 1996]  █████████████
  399.    ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  400. *1 ▌         Checking ChekMate Files & The Command Processor ...
  401.    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  402.      Current Task                       Progress
  403.    ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  404. *2 ▌ ChekMate.EXE               OK ▐  ▌ Interrupts OK                     ▐ *3
  405.    ▌ MD5.EXE                    OK ▐  ▌ 640Kb (DOS BASE) Memory Detected  ▐
  406.    ▌ Command Processor          OK ▐  ▌                                   ▐
  407.    ▌                               ▐  ▌                                   ▐
  408.    ▌                               ▐  ▌                                   ▐
  409.    ▌                               ▐  ▌                                   ▐
  410.    ▌                               ▐  ▌                                   ▐
  411.    ▌                               ▐  ▌                                   ▐
  412.    ▌                               ▐  ▌                                   ▐
  413.    ▌                               ▐  ▌                                   ▐
  414.    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  415.    ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  416. *4 ▌                                                                       ▐
  417.    ▌                                                                       ▐
  418.    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  419. _____________________________________________________________________________
  420.  
  421. Fig 1.
  422.  
  423. *1      Header, Shows current task identity.
  424. *2      Current Task Window, Shows detail of current task.
  425. *3      Progress, Shows completed task identities.
  426. *4      Message Window, Shows error messages etc.
  427.  
  428. The main screen (Fig 1.) shows ChekMate reporting the checked interrupts,
  429. the DOS base memory detected at execution. This is compared with a stored
  430. value in the CHEKMATE.INI. If these values are different, then a warning
  431. message is shown, ChekMate returns an errorlevel and returns control to
  432. the operating system.
  433.  
  434.  
  435. Many boot sector or partition table viruses lower the base memory value by
  436. 1Kb or more.
  437.  
  438. ChekMate detects many of those viruses by this method alone.
  439.  
  440. The next step, assuming no change is detected in the DOS base memory is for
  441. ChekMate to check itself (it also checks itself BEFORE it gets this far!).
  442. It checks its fingerprint file against its own code and then checks its MD5
  443. cryptographic fingerprint against a stored value.
  444.  
  445. If either of these do not match, a warning message appears, ChekMate returns
  446. an errorlevel and returns control to the operating system.
  447.  
  448. More detailed information is written out to the error log file (ERROR.LOG).
  449.  
  450. This is repeated for MD5.EXE and the Command Processor.
  451.  
  452. (The error/change reporting is the same at each stage of ChekMate's
  453. examination of your system files/areas.)
  454.  
  455. A similar routine is used for the boot sector(s) and the partition table.
  456.  
  457. The main difference is that the whole 512 bytes are compared with the
  458. values/images stored the first time that ChekMate was run.
  459.  
  460. If either of these do not match, a warning message appears, ChekMate
  461. returns an errorlevel and returns control to the operating system.
  462.  
  463. The next phase of ChekMate is to check the decoy/bait files used to trap
  464. file infecting viruses before they are executed.
  465.  
  466. These files are first checked in the same way as CHEKMATE.EXE etc., except
  467. that the cryptographic fingerprints are stored inside CHEKMATE.EXE, and
  468. the filesize is also checked.
  469.  
  470. This is done to minimize the chance of modifications to these files by an
  471. unknown party. That is to say, this is an anti-hacker ploy.
  472.  
  473. If these files are found to be unchanged, they are then executed. This
  474. is to purposely expose them to any viruses that are capable of infecting
  475. files.
  476.  
  477. This is like a lamb walking up to wolf and saying "my you have big teeth!"
  478.  
  479. This has proved to be very effective in trapping unknown file infecting
  480. viruses.
  481.  
  482. Yet again, if ANY changes are detected, you will see an error message.
  483.  
  484. The decoy/bait files are then checked AGAIN after they have been executed
  485. to determine whether a file infecting virus has modified them.
  486.  
  487. If you got this far without any warning messages, then your system is
  488. deemed to be clean (assuming it was clean BEFORE ChekMate was installed,
  489. and that an up to date, good quality virus scanner is used at reasonable
  490. intervals, say weekly!)
  491.  
  492.  
  493.  
  494. ERRORLEVEL Returns:
  495. ______________________
  496.  
  497. The following errorlevel values are returned when ChekMate exits back to the
  498. operating system.
  499.  
  500.  0  = No modifications detected
  501.  1  = COMMAND.COM (or other COMMAND processor) appears to have been changed
  502.  2  = ChekMate.EXE appears to have been changed
  503.  3  = The BOOT SECTOR(s) appears to have been changed
  504.  4  = The PARTITION TABLE appears to have been changed
  505.  5  = One or more of the BAIT files appear to have been changed
  506.  6  = The DOS base memory amount appear to have been changed
  507.  7  = MD5.EXE appears to have been changed
  508.  8  = The memory hole contains code
  509.  9  = A change has been detected in the CMOS *REGISTERED version only!
  510.  10 = One or more of the interrupts are outside the normal boundries
  511.  98 = Dir2.Byway appears to be active on this system
  512.  99 = A companion virus appears to be active on this system
  513.  
  514.  Q.     What can you do with this information?
  515.  
  516.  A.     You can use the errorlevels returned in a batch file to automatically
  517.         run your favourite virus scanner when ChekMate detects a modification
  518.         to your system.
  519.  
  520. In this example, the virus scanner is McAfee Scan
  521.  
  522.         e.g. CHECK.BAT
  523.         @ECHO OFF
  524.         CLS
  525.         CD C:\CHEKMATE
  526.         CHEKMATE.EXE
  527.         IF NOT ERRORLEVEL 1 GOTO :End
  528.         :Change!
  529.         C:\SCANNER\SCAN.EXE /ADL
  530.         CD C:\
  531.         :End
  532.  
  533. The batch file above will only run your virus scanner if the errorlevel
  534. does not equal zero (0).
  535.  
  536.  
  537.  
  538. Help/Command Line Switches:
  539. __________________________
  540.  
  541. To get help, run:
  542.  
  543.  
  544. CHEKMATE.EXE /? or /H
  545.  
  546.  
  547. Other command line switches:
  548.  
  549.  
  550. /CREATE         Creates a 'new' set of Finger-Print files.
  551.                 Usually only used after DOS upgrade or after cleaning up
  552.                 after a virus attack.
  553.  
  554. /NOEXPOSE       Used to only check Finger-Print files against original
  555.                 files/area. Does NOT execute BAIT files.
  556.  
  557. /QUIET          Force ChekMate to run in QUIET mode.
  558.                 (ChekMate will only display warnings no other information
  559.                 is shown. REGISTERED version only!)
  560.  
  561. /NOBP           Disable the boot and partition checking. This is only
  562.                 recommended for use with Windows NT.
  563.  
  564. /NOCMOS         Disable the CMOS checking. This is only
  565.                 recommended for use with Windows NT.
  566.  
  567. /NODRIVES       This is only for use with /AUTO on NT systems. This is
  568.                 required on NT systems; otherwise an error #71 is
  569.                 generated.
  570.  
  571.  
  572. Known problems/limitations:
  573. __________________________
  574.  
  575. 1)      May not detect direct action non-TSR viruses very quickly.
  576.         Most new viruses are TSR (memory resident) variants.
  577.  
  578.         The best way to test 'suspect' files is to place them in the same
  579.         directory as ChekMate, Virus Scan them and if they are not reported
  580.         as infected, then run them from there. Then run ChekMate.
  581.  
  582.                    **** REMEMBER TO BACKUP YOUR SYSTEM FIRST ****
  583.  
  584. 2)      Link viruses, such as DIR II may not be detected, as no
  585.         executable code is changed.
  586.  
  587.         A special routine has been added for the Dir2.Byway Link virus.
  588.  
  589.  
  590.  
  591. Common Questions & Answers:
  592. __________________________
  593.  
  594. If ChekMate detects a change in your system then proceed as follows:
  595.  
  596.         To confirm this run your favourite virus scanner, after booting from
  597.         the original write-protected bootable system disk.
  598.  
  599.         If the scanner finds nothing then send the following files to me
  600.         (you will find them in the directory where ChekMate was installed):
  601.  
  602. For the correct files to send see the relevant question.
  603.  
  604.  
  605. Q1.     ChekMate informed me that the 'DOS Base Memory' value has changed.
  606.         What should I do?
  607.  
  608. A1.     If ChekMate has been working fine before, then you have probably
  609.         been infected by a Boot or Partition Sector virus. Most of
  610.         these types of viruses 'steal' 1Kb or more from DOS.
  611.  
  612.         Please send me the following files for inspection:
  613.  
  614.         ?BOOT.SEC files  (Where ? is C, D, E or F)
  615.         ?BOOT.CHK files  (Where ? is C, D, E or F)
  616.         PART.CHK
  617.         PART.SEC
  618.         ERROR.LOG
  619.  
  620.  
  621. Q2.     ChekMate informed me that ChekMate.EXE has changed. What should I do?
  622.  
  623. A2.     ChekMate.EXE should NEVER change, apart from being upgraded to the
  624.         latest version.
  625.  
  626.         Please send me the CHEKMATE.EXE & CHEKMATE.CHK files to inspect.
  627.  
  628.  
  629. Q3.     ChekMate informed me that MD5.EXE has changed. What should I do?
  630.  
  631. A3.     MD5.EXE should NEVER change, apart from being upgraded to the
  632.         latest version.
  633.  
  634.         Please send me the MD5.EXE file to inspect.
  635.  
  636.  
  637.  
  638. Q4.     ChekMate informed me that 'The Command Processor' has changed.
  639.         What should I do?
  640.  
  641. A4.     Your Command Processor should NEVER change, apart from DOS being
  642.         upgraded to another version.
  643.  
  644.         Please send me a copy of your Command Processor file to inspect.
  645.         (Usually COMMAND.COM, could be NDOS.COM or 4DOS.COM)
  646.  
  647.  
  648. Q5.     ChekMate informed me that 'The Boot Sector' has changed. What should
  649.         I do?
  650.  
  651. A5.     If ChekMate has been working fine before, & you have NOT upgraded
  652.         your version of DOS or changed the 'Volume Label' then you have
  653.         probably been infected by a Boot Sector virus.
  654.  
  655.         Please send me the following files:
  656.  
  657.         ?BOOT.SEC files  (Where ? is C, D, E &/or F)
  658.         ?BOOT.CHK files  (Where ? is C, D, E &/or F)
  659.         ERROR.LOG
  660.  
  661.  
  662. Q6.     ChekMate informed me that 'The Partition Sector' has changed. What
  663.         should I do?
  664.  
  665. A6.     If ChekMate has been working fine before, & you have NOT upgraded
  666.         your version of DOS or changed the Partition Table by running FDISK
  667.         then you have probably been infected by a Partition Table virus.
  668.  
  669.         Please send me the following files:
  670.  
  671.         PART.SEC
  672.         PART.CHK
  673.         ERROR.LOG
  674.  
  675.  
  676. Q7.     ChekMate informed me that '1 or More of The BAIT File(s)' have
  677.         changed. What should I do?
  678.  
  679. A7.     The BAIT files should NEVER change. (except from version 1.05d to
  680.         1.06a and 2.0 to 2.1)
  681.  
  682.         Please send me the following files to inspect.
  683.  
  684.         FOUR.COM
  685.         FOUR.EXE
  686.         TEN.COM
  687.         TEN.EXE
  688.         THIRTYTW.COM
  689.         THIRTYTW.EXE
  690.  
  691.  
  692. Q8.     ChekMate informed me that 'Interrupt xx has changed'. What should
  693.         I do?
  694.  
  695. A8.     These are the main possibilities:
  696.  
  697.         1. You are running a TSR that has modified an interrupt address that
  698.            is frequently used by memory resident and /or stealth virus.
  699.  
  700.            Remove all TSR programs and try ChekMate again to see if the
  701.            problem stops.
  702.  
  703.            If it does, re-load the TSR's one at a time (running ChekMate
  704.            after each one) until the problem re-occurs.
  705.  
  706.            Please inform me of the problem and send me a copy of the
  707.            ERROR.LOG file for me to inspect. I will then try to fix the
  708.            problem.
  709.  
  710.         2. A memory resident and/or stealth virus is active in your system.
  711.  
  712.            Please manually run the bait files, FOUR.COM, etc. and then
  713.            send them to me to inspect for signs of infection.
  714.  
  715.            Please send me a copy of the ERROR.LOG file for me to inspect.
  716.  
  717.         3. You are running EZDRIVE or DISK MANAGER drivers for your
  718.            Enhanced IDE hard disk.
  719.  
  720.            Note: if you have been running ChekMate without problem and
  721.                  ChekMate now reports an interrupt changed, a virus is
  722.                  probably active in your system.  Please return to #2,
  723.                  immediately above.
  724.  
  725.            If, however, you are just setting up ChekMate, please read on:
  726.  
  727.            EZDRIVE or DISK MANAGER may set an interrupt in a virus-like
  728.            way as they use interrupt addressing techniques similar to
  729.            those of some computer viruses.  Assuming you have scanned
  730.            your system with a good and up-to-date virus scanner (such as
  731.            F-Prot, ThunderBYTE etc...) ChekMate permits you to tell it
  732.            to ignore that/those interrupts.  This is the only way to
  733.            resolve a wrongly-reported interrupt.
  734.  
  735.            Look at the file ERROR.LOG, it will show an Interrupt Number
  736.            (say, 13) and an address (say, 9E70:0A3D).  With any ASCII
  737.            editor (such as EDIT or NOTEPAD), create a file called
  738.            EXCLUDE.INT and, as the first line, starting in column 1, put
  739.            the number of the interrupt and the address.  Thus, as above:
  740.            "13=9E70:0A3D" (the quotation marks are not used).
  741.  
  742.            The maximum number of entries in EXCLUDE.INT is 5.  Each must
  743.            be on a separate line and have (as above) 12 characters only.
  744.  
  745.            If EXCLUDE.INT does not solve the problem, please inform me
  746.            of the problem and send me a copy of the ERROR.LOG file for
  747.            me to inspect.  I will then try to fix the problem.
  748.  
  749. In all cases ensure that you have scanned your system with a good and
  750. up-to-date virus scanner (such as F-Prot, ThunderBYTE etc...).
  751.  
  752. Please remember to inform me which scanner and version was used. Also
  753. please ensure that you send the ERROR.LOG file.
  754.  
  755.  
  756.  
  757. Latest Version:
  758. ______________
  759.  
  760. The latest version of this application should always be available from the
  761. internet site or bulletin board that you originally obtained it from.
  762.  
  763. The main site is the SimTel archives (ftp.simtel.net) or one of the mirror
  764. sites, in the pub/simtelnet/msdos/virus directory.
  765.  
  766. Other sites include:
  767.  
  768.  ftp.demon.co.uk in /pub/antivirus/ibmpc/av-progs
  769.  http://www.valleynet.com/~joe/avdos.htm
  770.  garbo.uwasa.fi in /pc/virus
  771.  
  772.  
  773. You will also find it on many BBS's throughout the world.
  774.  
  775. Please E-Mail me if you want to know when a new version is released,
  776. I will add you to the mailing list for new version announcements.
  777.  
  778. Registered users will informed automatically.
  779.  
  780.  
  781. Bug reports, suggestions, etc...
  782. ________________________________
  783.  
  784. If you catch a virus with ChekMate in one of the Bait files, then please
  785. send me a copy for analysis. I will send a reply to anyone who sends me
  786. such a file. If possible I will send a search string to correctly identify
  787. the new virus to aid removal.
  788.  
  789. To date ChekMate has trapped numerous unknown viruses ("in the wild"). The
  790. latest was even undetected by heuristic based scanners.
  791.  
  792. Mail files to the E-Mail or Postal address at the top of this document.
  793. (If you e-mail the file(s) then please use UUENCODE or MIME. Also for
  794. greater security please use PGP (my public key is supplied with this
  795. version as well as older versions beginning with 1.06b)).
  796.  
  797. Please send all bug reports, suggestions, etc to the E-Mail or Postal
  798. address at the top of this document.
  799.  
  800. If you like this program, let other people know about it!
  801.  
  802. If you have tested ChekMate against any viruses then please let me know
  803. the outcome of these tests, whether the results are good or bad.
  804.  
  805. For details of viruses that ChekMate has been tested against, please see
  806. the file enclosed in this ZIP file, TESTS.TXT.
  807.  
  808. Thanks:
  809. ______
  810.  
  811. Thanks to Philip Tong for early Beta testing and a copy of the then unknown
  812. 'Dalian' virus which ChekMate captured. Thanks also go to Ed Fenton, Hugh
  813. Brecher, Jon Dron, Flint Howard and many others for their suggestions for
  814. improvements, Beta testing of new versions and constructive feedback.
  815. A very BIG thank you goes to Christy Gemmell and Glen Blankenship who helped
  816. with some of the low-level routines used in this program.
  817.  
  818.  
  819.  
  820. Why was ChekMate Written?:
  821. _________________________
  822.  
  823. I frequently receive suspect files from people throughout the world that
  824. believe, either rightly or wrongly, they are infected with a new/unknown or
  825. known virus.
  826.  
  827. I needed a way to confirm that the file/disk was indeed infected.
  828.  
  829. My first step was to scan it for known viruses, if that did not detect a
  830. known virus then the infected file/disk was run on a 'sheep-dip' PC and
  831. ChekMate was then used to tempt the virus into infecting one or more of the
  832. bait files or the Boot sector or Partition Table.
  833.  
  834. In all cases the virus was caught by ChekMate. Either by infecting one or
  835. more of the BAIT files or the Boot Sector or Partition Table.
  836.  
  837. Many people do not perform a daily scan of their PC, because they feel it
  838. takes too long (3-20 Minutes). ChekMate takes under 20 seconds to  run,
  839. even on 80286 based systems.
  840.  
  841.  
  842. And finally .........
  843. _____________________
  844.  
  845. Thank you for trying ChekMate.
  846.  
  847.  
  848.  
  849. -----------------  APPENDIX A: --- "Using SETUP.EXE"--------------------
  850.  
  851. CHEKMATE.INI:
  852. ____________
  853.  
  854. You can use the SETUP.EXE file supplied to change the CHEKMATE.INI.
  855. (Strongly Recommended)
  856.  
  857. SETUP will in many cases tell you what the settings should be for a
  858. particular line.
  859.  
  860. If you use the /AUTO switch for SETUP.EXE it will build a INI file
  861. automatically, without your intervention. You must use the /NODRIVES
  862. switch with /AUTO on Windows NT systems or an error #71 will be generated.
  863.  
  864. If the /AUTO switch fails, then please try the /ALTAUTO switch instead
  865. as you may have a BIOS that is not supported by /AUTO.
  866.  
  867. (See SETUP later in this document)
  868.  
  869. Otherwise, manually edit the CHEKMATE.INI file (Shown Below) if
  870. required:
  871.  
  872. Notes   Example File            What each line is/means
  873.  
  874.         [System]                Section Label
  875.         CMDir=C:\CHEKMATE       The Directory That ChekMate is Installed in.
  876. *1      Shell=C:\COMMAND.COM    Path & Name of Command Processor in use.
  877. *2      Drives=1                Number of drives (Physical or Logical).
  878. *3      BaseMem=640             The BASE DOS Memory as reported by MEM /C.
  879.  
  880.         [BaitFiles]             Section Label
  881.         1=FOUR.COM              Small  .COM Bait file.
  882.         2=TEN.COM               Medium .COM Bait file.
  883.         3=THIRTYTW.COM          Large  .COM Bait file.
  884.         4=FOUR.EXE              Small  .EXE Bait file.
  885.         5=TEN.EXE               Medium .EXE Bait file.
  886.         6=THIRTYTW.EXE          Large  .EXE Bait file.
  887.  
  888.  
  889. This file MUST exist and the contents MUST be correct or ChekMate will NOT
  890. work correctly.
  891.  
  892. *1      The command processor can be COMMAND.COM. 4DOS & NDOS.COM are also
  893.         supported as common replacements for COMMAND.COM.
  894.  
  895.         Use SETUP.EXE if you are unsure about this.
  896.  
  897. *2      ChekMate will handle up to drive F:
  898.         (The CHEKMATE.INI entry would then need to be 4)
  899.  
  900. *3      This is usually 640Kb (655,360 Bytes), Some systems may report 639Kb
  901.         due to HD controllers and some extended BIOSes 'borrowing' 1Kb for
  902.         their own purposes.
  903.  
  904.         ChekMate displays the DOS base memory detected at run time.
  905.  
  906.  
  907.  
  908. Using SETUP:
  909. ___________
  910.  
  911. SETUP.EXE allows you to change/set the contents of CHEKMATE.INI without the
  912. use of an editor or require you to have any specialist knowledge of your
  913. system setup (apart from the number of LOCAL drive letters!).
  914.  
  915. To run SETUP, simply ensure that you are in the directory that CHEKMATE.INI
  916. (default is the ChekMate directory) was placed into, now type the line below
  917. at your DOS or OS/2 prompt:
  918.  
  919.         SETUP
  920.  
  921. Or to run SETUP on a mono screen type:
  922.  
  923.         SETUP /MONO
  924.  
  925. Either way, you will see the screen below:
  926.  
  927. __________________________________________________________________________
  928.  
  929.  
  930.                +----- ChekMate  Version 2.1 [20th April 1996] -----+
  931.                |          Configuration / Setup Program            |
  932.                +---------------------------------------------------+
  933.  
  934.                       The CHEKMATE.INI Currently Looks Like This
  935.                       ChekMate Directory      :=     C:\CHEKMATE
  936.                       Command Processor       :=     C:\COMMAND.COM
  937.                       No. of Drive Letters    :=     3
  938.                       (C:,D:,E:)
  939.                       DOS (BASE) Memory       :=     640
  940.  
  941.                   Please Note: Not showing BAIT file information
  942.  
  943.                             Are These Values Correct (Y/N)
  944.  
  945.             Choose 'N' To Edit CHEKMATE.INI or 'Y' Will Exit Back To Dos
  946.  
  947. __________________________________________________________________________
  948.  
  949.  
  950. As you can see above, the CURRENT settings are shown.  You are asked if
  951. the values are correct.
  952.  
  953.  - If you answer 'Y', SETUP simply exits back to the operating system
  954.    without making any modifications.
  955.  
  956.  - If you answer 'N' then you will be asked questions.  An example is
  957.    shown below:
  958.  
  959.  
  960. __________________________________________________________________________
  961.  
  962.                +----- ChekMate  Version 2.1 [20th April 1996] -----+
  963.                |          Configuration / Setup Program            |
  964.                +---------------------------------------------------+
  965.  
  966.  
  967. Enter Directory Where ChekMate is Installed Currently (C:\CHEKMATE)
  968. Path=: c:\AV\CHEKMATE
  969. Set To: C:\AV\CHEKMATE
  970.  
  971. Enter The Path & Name of Your Command Processor, Currently (C:\COMMAND.COM)
  972. I Detect The Following (C:\OS2\MDOS\COMMAND.COM)
  973. Shall I Set It To That (Y/N) ?
  974. Set  To: D:\OS2\MDOS\COMMAND.COM
  975.  
  976. Enter The Number of Drive Letters (Up to F: Only), Currently ( 3)
  977. Number =: 2
  978. Set  To:  2
  979.  
  980. Enter The Amount of DOS BASE Memory (Up to 640Kb Only),Currently ( 640 )
  981. I Detect( 640 ) Set It to That Value (Y/N) ?
  982. Set  To:  640
  983.  
  984.                           Is This Correct (Y/N) ?
  985.  
  986.       Choose 'N' To Try Again or 'Y' Will Write Changes And Exit To Dos
  987.  
  988. __________________________________________________________________________
  989.  
  990. As you can see, SETUP will tell you what the settings SHOULD be set to.
  991.  
  992. It will automatically work out what command processor is running from
  993. the environment variable COMSPEC.
  994.  
  995. The DOS base memory is also detected automatically. Common values are 640
  996. or 639, the latter is mainly found in systems with extended BIOSes.
  997.  
  998.                   ANY other value should be questioned!
  999.  
  1000. Once all the questions are answered, you are then asked to confirm whether
  1001. the settings are correct.
  1002.  
  1003. Answering 'N' will restart the questions.
  1004.  
  1005. Answering 'Y' will write out the changes to CHEKMATE.INI and exit to
  1006. DOS.
  1007.  
  1008.  
  1009.  
  1010. ---------  APPENDIX B: --- "Information about MD5 (Quoted from RFC1321)
  1011.  
  1012. 1. Executive Summary
  1013.  
  1014. This document describes the MD5 message-digest algorithm.  The algorithm
  1015. takes as input a message of arbitrary length and produces as output a
  1016. 128-bit "fingerprint" or "message digest" of the input.
  1017.  
  1018. It is conjectured that it is computationally infeasible to produce two
  1019. messages having the same message digest, or to produce any message
  1020. having a given prespecified target message digest.
  1021.  
  1022. The MD5 algorithm is intended for digital signature applications, where
  1023. a large file must be "compressed" in a secure manner before being
  1024. encrypted with a private (secret) key under a public-key cryptosystem
  1025. such as RSA.
  1026.  
  1027. The MD5 algorithm is designed to be quite fast on 32-bit machines.  In
  1028. addition, the MD5 algorithm does not require any large substitution
  1029. tables; the algorithm can be coded quite compactly.
  1030.  
  1031. The MD5 algorithm is an extension of the MD4 message-digest algorithm
  1032. 1,2].  MD5 is slightly slower than MD4, but is more "conservative" in
  1033. design.  MD5 was designed because it was felt that MD4 was perhaps being
  1034. adopted for use more quickly than justified by the existing critical
  1035. review; because MD4 was designed to be exceptionally fast, it is "at the
  1036. edge" in terms of risking successful cryptanalytic attack.  MD5 backs
  1037. off a bit, giving up a little in speed for a much greater likelihood of
  1038. ultimate security.  It incorporates some suggestions made by various
  1039. reviewers, and contains additional optimizations.  The MD5 algorithm is
  1040. being placed in the public domain for review and possible adoption as a
  1041. standard.
  1042. ** END OF DOCUMENT ***
  1043.